/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ar.edu.unicen.twitter.suggest.backend.recommendation.Ranking;

import ar.edu.unicen.twitter.suggest.commons.dtos.Usuario;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 *
 * @author Alex
 */
public abstract class RankingUsuariosHannon implements RankingUsuarios{

    protected long totalUsuarios;
    protected Usuario referencia;
    
    public RankingUsuariosHannon(Usuario referencia, long totalUsuarios){
        this.totalUsuarios = totalUsuarios;
        this.referencia = referencia;
    }
    @Override
    public Map<Usuario, Double> rank(List<Usuario> usuarios) {
        Map<Usuario, Double> scores = new HashMap<Usuario, Double>(usuarios.size());
        for(Usuario usuario:usuarios){
            scores.put(usuario,getTfIdf(referencia, usuario));
          //  System.out.println("HANNON: "+usuario.getId()+" = "+scores.get(usuario.getId()));
        }
        return scores;
    }
    
    public abstract double getTfIdf(Usuario referencia, Usuario candidato);
}
